import adminList from '$V/adminList'
import {
    addAdminRequest,
    adminListRequest,
    deleteAdminRequest,
    isLoginRequest
} from '$a/admin'
//封装展示多有管理员列表的功能函数，当初始化的时候，删除时候来执行
const showAdminList = async (res,)=>{
    let adminListResult=null 
    try {
        adminListResult = await adminListRequest();
        // console.log(adminListResult);
    } catch (e) {
        // alert('获取管理员列表：'+e.message)
        if(!e.isLogin){
            return router.go('/login')
        }
    }
    
     //渲染二级路由
     res.render(adminList({
        adminList: adminListResult
    }))

}


export default async (req,res)=>{
//切换路由的时候验证
    try{
        isLoginRequest()
    }catch(e){
        alert("有异常" + e.message)
        //判断是否异常
    if (!e.isLogin) {
        return router.go("/login");
      }
    }
    

//主要进入当前路由函数，就立马开始拆查询所有管理员信息
    await showAdminList(res)

   
    const  oSaveAdminBtn = document.querySelector('#saveAdminBtn')

    document.onclick =  async function (e) {
        if (e.target.id === 'saveAdminBtn') {
            var adminNameValue = document.adminForm.adminName.value.trim();
            var passwordValue = document.adminForm.password.value.trim();
            var rePasswordValue = document.adminForm.rePassword.value.trim();

            if (!adminNameValue || !passwordValue || !rePasswordValue) {
                return alert('输入内容不能为空')
            }
            if (passwordValue !== rePasswordValue) {
                return alert('请保证输出密码一致')
            }
            //向后端发请求
            try {
                await addAdminRequest({
                    adminName: adminNameValue,
                    password: passwordValue,
                    regTime: new Date().toLocaleString()

                })

                alert('添加成功')
                document.querySelector('#yin').click()
                //清空表单
                document.adminForm.reset()

                //重新渲染界面
                showAdminList(res)
            } catch (e) {
                alert('有异常' + e.message)
                document.adminForm.reset()

                if (!e.isLogin) {

                    router.go("/login");
                    location.reload();
                }

            }
        }
        if(e.target.nodeName === 'BUTTON'&&e.target.parentNode.nodeName==='TD'){
            const adminName = e.target.dataset.adminname

            try{
                await deleteAdminRequest(adminName)
                alert('删除管理员'+adminName+'成功')
                showAdminList (res)
            }catch(e){
                alert('删除管理员'+adminName+'失败')
                //判断是否权限异常
            if (!e.isLogin) {
                return router.go("/login");
              }
            }
            

        }

    }
    
    

}